'use strict';
/**
 * author：小小游 --- allen
 * date：2018.02.08
 * lastUpdateDate：2018.02.08
 * description：变量的对象解构赋值基本用法
 */
 /**
  * 1.这里值得注意的是a和b都是模式，模式是不能被输出的(模式输出会报错的)
  * c才是具体有值的才是变量
  * 2.也就是可以这样理解比如let { a : { b : { c } } } = obj;
  * 在a的右侧，也就是在a :(冒号)的右侧如果它有结构的话，它就不能作为
  * 变量，它只是模式，模式是不能被输出的，这个要理解好
  */
/**
 * 抛出异常的一些情况，比如类似以下的解构是错误的，如下所示：
 */
// let { xxx : { yyy } } = { 'name' : { 'yyy' : 123 }, xxx : 'aaa' };
// result：undefined结果虽然是对的，这个相信也很好理解
// console.log(yyy);

let { aaa : { bbb } } = { 'aaa' : { 'bbb' : 123 } };
// result：123
console.log(bbb);

/**
 * 灰常低级的错误 右侧根本没有x，也就是x = undefined，然后
 * 你视图输出y的值json调用就是x.y或x['y'](undefined.y)绝对
 * 的报错，好吧
 */
// let { x : { y } } = { 'name' : { 'y' : 123 } };
// console.log(y);
